#pragma once

#include <vector>
#include "cEnemy.h"
#include "cSound.h"
#include "GfxStats.h"
#include "cUserBullet.h"
#include "cEnemyBulletMgr.h"
#include "cUserInterface.h"
#include "cMacro.h"

class cEnemyMgr
{
public:
	cEnemyMgr(void);
	~cEnemyMgr(void);
	
	void createModel( const std::string& name, int createSize, int posnumber );
	void createAniModel( const std::string& name, int createSize, D3DXVECTOR3 getUserposition, int posnumber );
	void PlayerBulletUpdate( D3DXVECTOR3 getUserPosition, cSound* pSound );
	void UpdateEnemyAll( D3DXVECTOR3 getUserPosition, const BBox& getplayerBox, float dt, cSound* pSound );
	void RenderEnemyAll( bool bDraw );
	void eraseEnemyAll( );

public:

 	void drawText( int x, int y, const char* txt, D3DCOLOR color );

private:
	std::vector<cEnemy*>	enemyArray;
	std::vector<cAniEnemy*>	aniEnemyArray;
	
	cUserInterface*				mp_userInterface;
	cEnemyBulletMgr*		mp_EmyBulletMgr;
	cUserBullet*					mp_PlayerBullet;
	ID3DXFont*						mp_Font;
	GfxStats*							mp_GfxStats;

private:
	double				bulletDelay1;
	double				bulletDelay2;
	double				m_AnibulletDelay1;
	double				m_AnibulletDelay2;
	double				m_AnibulletDelay3;
	double				m_AnibulletDelay4;
	double				enemyDelay1;
	double				aniEnemyDelay1;
	double				aniEnemyDelay2;
	double				aniEnemyDelay3;
	double				aniEnemyDelay4;
	double				aniEnemyDelay5;
	double				aniEnemyDelay6;
	double				aniEnemypwrtemDelay;
	double				aniEnemybomtemDelay;
	double				aniEnemyBosstime;
};
